Core.Action.Store = function() {
	this.cache = {};
};

Core.Action.Store.prototype = {
	
	__clear: function() {},
	
	register: function(id, cls) {
		Core.assert(!this.cache[id], "Action cls with id '" + id + "' already exists.");
		this.cache[id] = cls;
	},
	
	create: function(struct) {
		var id = struct.type;
		
		Core.assert(this.cache[id], "Action cls with id '" + id + "' not found");
		return new this.cache[id](struct);
	}
};

Core.Action.Store = Singleton.register("core.action.store", Core.Action.Store);